1

原文

Node.js开发者经常检测环境变量NODE_ENV,但你是否知道设置这个值同时也具有着某些别的意义?阅读本文你将发现这些。

NODE_ENV是一个在Express框架中极其常用的环境变量。用其确定应用的运行环境(诸如开发,staging,生产,测试...)。

通常,应用将会运行在开发环境。我们可以通过改变process.env.NODE_ENV来改变环境。让我们来看看框架/库在不同环境下的表现。

开发环境

  • 显示更多日志

  • 不缓存视图

  • 生成较冗余的错误信息

  • js,css这类前端资源,不压缩不缓存

生产环境

以下是与框架无关的一些特点:

  • 中间件及其他依赖会被切换到更高效的代码路径

  • 只安装dependencies中的包,dependenciespeerDependencies的中包会被忽略

express.js

  • 缓存视图框架

  • 生成更简短的错误信息

  • 缓存资源文件

sailsjs

  • 可以使用CSRF

  • 压缩服务端响应(详见https://www.npmjs.com/package...

  • 模块迁移的设置被强制定位'safe'。这可以保证在部署时不会破坏生产数据。

  • res.serverError()追踪错误信息与错误棧会被存在日志中而不是通过服务端响应返回。

mongoose

全局禁用autoIndex。这能显著提高性能(详见http://docs.mongodb.org/manua...)。

还有许多这里就不一一列出。如你所见,将NODE_ENV设为production能达到更好的性能。所以这个变量在全球Node开发者心中有如此重要的地位。你应该牢记“总是将NODE_ENV设为production”。


这是上帝的杰作
2.2k 声望164 粉丝

//loading...